package com.tang.objectOriented.basics.thiss;

public class ThisDetail {
    public static void  main(String[] args){

    }
}


//1) this 关键字可以用来访问本类的属性、方法、构造器
//2) this 用于区分当前类的属性和局部变量
//3) 访问成员方法的语法：this.方法名(参数列表);
//4) 访问构造器语法：this(参数列表); 注意只能在构造器中使用(即只能在构造器中访问另外一个构造器, 必须放在第一 条语句)
//5) this 不能在类定义的外部使用，只能在类定义的方法中使用。

class T{
    String name="t";
    int num=160;
    /*
	细节:  访问构造器语法：this(参数列表); (即只能在构造器中访问另外一个构造器)
	注意:  只能在构造器中使用
	注意： 访问构造器语法：this(参数列表); 必须放置第一条语句
	 */
    public T() {
        //这里去访问 T(String name, int age) 构造器
        this("jack", 100);
        System.out.println("T() 构造器");

    }
    public T(String name, int age) {
        System.out.println("T(String name, int age) 构造器");
    }
    //this关键字可以用来访问本类的属性
    public void f3() {
        String name = "smith";
        //传统方式
        System.out.println("name=" + name + " num=" + num);//smith  100
        //也可以使用this访问属性
        System.out.println("name=" + this.name + " num=" + this.num);//jack 100
    }

    //细节: 访问成员方法的语法：this.方法名(参数列表);
    public void f1() {
        System.out.println("f1() 方法..");
    }

    public void f2() {
        System.out.println("f2() 方法..");
        //调用本类的 f1
        //第一种方式
        f1();
        //第二种方式
        this.f1();
    }
}